package com.vhall.component.entity.account.vo;


import com.fasterxml.jackson.annotation.JsonProperty;
import com.vhall.component.framework.common.annotation.ParamName;
import lombok.Data;
import org.hibernate.validator.constraints.Range;

import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
import java.io.Serializable;

/**
 * @author dalong
 * @date 2021-04-25 17:01
 */

@Data
public class AuthLoginVO implements Serializable {
    /**
     * 手机号
     */
    @NotBlank(message = "不能为空")
//    @Pattern(regexp = "^1[3-9]\\d{9}$", message = "手机号格式有误")
    private String phone;
    /**
     * 验证码
     */
//    @NotNull(message = "不能为空")
    private Integer code;
    /**
     * 昵称
     */
//    @NotBlank(message = "不能为空")
    @ParamName("nick_name")
    private String nickname;


    /**
     * 1、主持人  2、观众  3、游客
     */
    @Range(min = 1, max = 3)
    private Integer type;

    /**
     * 房间id：嘉宾助理登录以及白名单登录时 roomId是 必传字段
     */
    @ParamName(value = "room_id")
    private String roomId;

    private String password;

    private String avatar;

    private String from;


    private String assistant;

    /**
     * 登录类型 1,2,3:嘉宾助理 ,5:白名单 6:观众   7:报名观众
     */
    @ParamName("login_type")
    private Integer loginType;

    /**
     * 游客ID 如果用户之前是游客身份进入，登录时需将用户ID 传回来，后端认为这是一个人，产生一条用户数据
     */
    @ParamName("visitor_id")
    private String visitorId;

    @ParamName("device_id")
    @JsonProperty("device_id")
    private String deviceId;

    /**
     * 登录成功后会话 ID 串 加密
     */
    @ParamName("logintokenEncrypted")
    @JsonProperty("logintokenEncrypted")
    private String logintokenEncrypted;

    public AuthLoginVO() {
    }

    public AuthLoginVO(String phone, String nickname, Integer type, String avatar) {
        this.phone = phone;
        this.nickname = nickname;
        this.type = type;
        this.avatar = avatar;
    }
}
